package com.inventory.utils;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * 响应结果包装类
 */
@Data
@AllArgsConstructor
public class ResponseResult {

    // 操作结果
    private boolean success;  // 修改为success更符合语义
    // 返回消息
    private String message;
    // 返回数据
    private Object data;

    /**
     * 构造响应结果对象（带数据）
     */
    public static ResponseResult build(boolean success, String message, Object data) {
        return new ResponseResult(success, message, data);
    }

    /**
     * 构造响应结果对象（无数据）
     */
    public static ResponseResult build(boolean success, String message) {
        return new ResponseResult(success, message, null);
    }

    /**
     * 成功响应（带数据）
     */
    public static ResponseResult success(String message, Object data) {
        return new ResponseResult(true, message, data);
    }

    /**
     * 成功响应（无数据）
     */
    public static ResponseResult success(String message) {
        return new ResponseResult(true, message, null);
    }

    /**
     * 失败响应
     */
    public static ResponseResult failure(String message) {
        return new ResponseResult(false, message, null);
    }

    /**
     * 错误响应
     */
    public static ResponseResult error(String message) {
        return new ResponseResult(false, message, null);
    }
}